package service.impl;

import dao.AdminDao;
import dao.impl.AdminDaoImpl;
import pojo.Admin;
import pojo.Menu;
import pojo.Role;
import service.AdminService;
import util.BaseDao;
import util.PageBean;

import java.util.List;

/**
 * 后台用户接口的实现类
 * @author 叶军军
 */
public class AdminServiceImpl implements AdminService {

    /**
     * 实列化dao层的实现类
     */
    AdminDao ad=new AdminDaoImpl();

    /**
     * 后台登录功能
     * @param account   管理员账户
     * @param password  管理员密码
     * @return
     */
    @Override
    public Admin login(String account, String password) {
        return ad.login(account,password);
    }

    /**
     *根据ID查询管理员信息
     */
    @Override
    public Admin queryAdmin(int id) {
        return ad.queryAdmin(id);
    }

    /**
     *根据管理员id查询管理员角色对象
     */
    @Override
    public Role queryOneRole(int id) {
        return ad.queryOneRole(id);
    }

    /**
     *根据用户ID查询菜单
     */
    @Override
    public List<Menu> roolMenu(int id) {
        return ad.roolMenu(id);
    }

    /**
     * 分页功能
     */
    @Override
    public PageBean adminPageList(PageBean pb, String ename, String account) {
        pb.setTotalCount(count(ename,account));
        List<Admin> admins=ad.adminPageList(pb, ename,account).getList();
        for(Admin admin:admins){
            Role role=queryOneRole(admin.getAdId());
            admin.setAdRoleName(role.getRoName());
        }
        pb.setList(admins);
        return pb;
    }

    /**
     * 统计总数
     */
    @Override
    public int count(String ename, String account) {
        return ad.count(ename,account);
    }

    /**
     *新增管理员
     */
    @Override
    public int inseAdmin(Admin admin) {
        return ad.inseAdmin(admin);
    }

    /**
     *根据管理员账户查找管理员id
     */
    @Override
    public int queryAdIdByAccount(String account) {
        return ad.queryAdIdByAccount(account);
    }

    /**
     *修改管理员信息
     */
    @Override
    public int modifAdmin(Admin admin) {
        return ad.modifAdmin(admin);
    }

    /**
     *删除管理员
     */
    @Override
    public int deleAdmin(int id) {
        return ad.deleAdmin(id);
    }

    /**
     * 修改管理员密码
     */
    @Override
    public int modifPassword(String password, int id) {
        return ad.modifPassword(password,id);
    }
}
